
В свободное от основной работы время автор материала консультирует по Go и разбирает код. Естественно, что в ходе такой деятельности он читает много кода, написанного другими людьми. В последнее время у автора этой статьи сложилось впечатление (да именно впечатление, никакой статистики), что программеры стали чаще работать с интерфейсами в «стиле Java».
Этот пост содержит рекомендации автора материала об оптимальном использовании интерфейсов в Go, основанные на его опыте в написании кода.
В примерах этого поста мы будет пользоваться двумя пакетами
animal
и circus
. Многие вещи в этом посте описывают работу с кодом, граничащим с регулярным применением пакетов.Как делать не надо
Очень распространенное явление, которое я наблюдаю:
package animals type Animal interface { Speaks() string } // применение Animal type Dog struct{} func (a Dog) Speaks() string { return "woof" }
Читать дальше →